﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LightEngine
{
    namespace Utilities
    {
        namespace FileSystem
        {
            /// <описание класса public class SaveDialogRunning>
            /// Версия класса 1.0
            /// Автор(ы): Ушаков Михаил
            /// Класс предназначен для запуска общего для всей ОС диалога сохранения файла.
            /// 1. Константы класса:
            ///    отсутствуют.
            /// 2. Поля класса:
            /// а) private SaveFileDialog SaveData = new SaveFileDialog(); экземпляр диалога
            ///    сохранения файлов.
            /// 3. Методы класса:
            /// а) public SaveDialogRunning(String FilterString, String InitialPath,
            ///                             String DefaultExt,
            ///                             String DialogTitle, UInt16 FilterIndex)
            ///    конструктор класса,производит настройку параметров запуска диалога 
            ///    с заголовком DialogTitle с начальным поиском пути в InitialPath со строкой
            ///    возможных вариантов сохранения FilterString, с расширением файлов по 
            ///    умолчанию DefaultExt и индексом варианта по умолчанию FilterIndex.
            /// б) public String StartDialog() запуск диалога сохранения файла.
            /// 4. Свойства и индексаторы класса:
            ///    отсутсвуют.
            /// </описание класса public class SaveDialogRunning>
            public class SaveDialogRunning
            {
                private SaveFileDialog SaveData = new SaveFileDialog();
                public SaveDialogRunning(String FilterString, String InitialPath,
                                         String DefaultExt,
                                         String DialogTitle, UInt16 FilterIndex)
                {
                    SaveData.Title = DialogTitle;
                    SaveData.InitialDirectory = @InitialPath;
                    SaveData.DefaultExt = DefaultExt;
                    SaveData.RestoreDirectory = true;
                    SaveData.AddExtension = true;
                    SaveData.Filter = FilterString;
                    SaveData.FilterIndex = FilterIndex;
                }

                public String StartDialog()
                {
                    if (SaveData.ShowDialog() == DialogResult.OK)
                    {
                        return SaveData.FileName;
                    }
                    return String.Empty;
                }
            }

            /// <описание класса public class OpenDialogRunning>
            /// Версия класса 1.0.1
            /// Класс предназначен для запуска общего для всей ОС диалога загрузки файла.
            /// 1. Константы класса:
            ///    отсутствуют.
            /// 2. Поля класса:
            /// а) private OpenFileDialog OpenDialog = new OpenFileDialog(); экземпляр диалога
            ///    загрузки файлов.
            /// 3. Методы класса:
            /// а) public OpenDialogRunning(String FilterString, String InitialPath,
            ///                             String DialogTitle,  UInt16 FilterIndex)
            ///    конструктор класса,производит настройку параметров запуска диалога 
            ///    с заголовком DialogTitle с начальным поиском пути в InitialPath со строкой
            ///    возможных вариантов сохранения FilterString и индексом вариант по умолчанию 
            ///    FilterIndex.
            /// б) public String StartDialog() запуск диалога загрузки файла.
            /// 4. Свойства и индексаторы класса:
            ///    отсутсвуют.
            /// </описание класса public class OpenDialogRunning>

            public class OpenDialogRunning
            {
                private OpenFileDialog OpenDialog = new OpenFileDialog();
                public OpenDialogRunning(String FilterString, String InitialPath,
                                         String DialogTitle, UInt16 FilterIndex)
                {
                    OpenDialog.Title = DialogTitle;
                    OpenDialog.InitialDirectory = @InitialPath;
                    OpenDialog.RestoreDirectory = true;
                    OpenDialog.Filter = FilterString;
                    OpenDialog.FilterIndex = FilterIndex;
                }

                public String StartDialog()
                {
                    if (OpenDialog.ShowDialog() == DialogResult.OK)
                    {
                        return OpenDialog.FileName;
                    }
                    return String.Empty;
                }
            }
        }
    }
}
